const fs = require("fs");
const path = require("path");

/**
 * 将SRT时间格式转换为秒
 * @param {string} timeStr - SRT时间字符串 (HH:MM:SS,mmm)
 * @returns {number} 秒数
 */
function srtTimeToSeconds(timeStr) {
  const [time, milliseconds] = timeStr.split(",");
  const [hours, minutes, seconds] = time.split(":").map(Number);
  return hours * 3600 + minutes * 60 + seconds + milliseconds / 1000;
}


/**
 * 准备临时目录
 * @param {string} tempDir - 临时目录路径
 */
function prepareTempDirectory(tempDir) {
  if (!fs.existsSync(tempDir)) {
    fs.mkdirSync(tempDir);
  } else {
    // 清理旧的临时文件
    const files = fs.readdirSync(tempDir);
    files.forEach(file => {
      fs.unlinkSync(path.join(tempDir, file));
    });
  }
}

/**
 * 获取目录下的第一个文件名（不包含后缀）
 * @param {string} dir - 目录路径
 * @param {string} ext - 文件扩展名
 * @returns {string|null} 文件名（不包含后缀）或null
 */
function getFirstFileNameWithoutExt(dir, ext) {
  try {
    const files = fs.readdirSync(dir);
    const targetFiles = files.filter(file => path.extname(file) === ext);
    if (targetFiles.length > 0) {
      return path.basename(targetFiles[0], ext);
    }
  } catch (err) {
    console.error(`！！！读取目录 ${dir} 失败:`, err.message);
  }
  return null;
}

module.exports = {
  srtTimeToSeconds,
  getFirstFileNameWithoutExt,
  prepareTempDirectory
};
